package top.javarem.medical.common.context;

public class BaseContext<T> {

    // 使用Object存储+泛型方法实现灵活类型支持
    private static final ThreadLocal<Object> threadLocal = new ThreadLocal<>();

    /**
     * 存储任意类型值
     * @param id 需要存储的值（支持泛型）
     */
    public static <T> void setCurrentId(T id) {
        threadLocal.set(id);
    }

    /**
     * 获取当前线程存储的值
     * @return 自动转型为调用处指定的类型
     * @throws ClassCastException 如果类型不匹配
     */
    @SuppressWarnings("unchecked")
    public static <T> T getCurrentId() {
        return (T) threadLocal.get();
    }

    /** 清除当前线程的存储 */
    public static void clear() {
        threadLocal.remove();
    }

}
